#include <iostream>


/**
 *  引用：给变量起别名
    语法：数据类型 &别名= 原名
 */


void swap(int &a) { // 引用

}

//引用做函数的返回值
//1、不要返回局部变量的引用
//引用的本质在c++内部实现是一个指针常量.
int &test1() {
    int a = 10;//局部变量存放在四区中的 栈区
    return a;
}

// 这个可以，静态变量，不会随着栈结束而没有
// 如果返回是一个引用，可以让 等号的左边存在例如： test00() = 30
int &test00() {
    static int a = 10;
    return a;
}

int main() {
    int a = 10;
    // 自动转换为 int* const b =&a；指针常量是指针指向不可变
    int &b = a;

    // 内部发现ref是引用，自动帮我们转换为：*b
    b = 30;

    std::cout << a << std::endl;
    std::cout << b << std::endl;
}

